C# ile Rastgele Sayı Üretip Tahmin Etme Oyunu

Bu örneğimizde 2 kullanıcı karşılıklı bir şekilde oynayacaklar ve her birinin puanı yarı hesaplanacak. Oyunu Bitir tuşuna basınca kimin puanı yüksekse o kullanıcıya "TEBRİKLER, KAZANDINIZ" mesajı verilecek, kullanıcılar bilgisayarın rastgele ürettiği sayıları tahmin edip puan alacaklar. 





Başla Oyuncu #1 düğmesine tıklayınca hemen altındaki listbox nesnesine "OYUN BAŞLADI, sayı üretildi, tahmininiz" yazıyoruz. Kullanıcı tahminini metin kutusuna girip, "Giriş" düğmesine tıklıyor. Eğer üretilen sayı bilindiyse TEBRİKLER, KAZANDINIZ mesajı veriyoruz, tahmin olarak girilen sayı üretilen sayıdan küçükse "Daha büyük bir sayı giriniz", tersiyse "Daha küçük bir sayı giriniz" mesajı veriyoruz.

Programda her oyuncu 6 defa tahmin yapabilir, eğer 6 defada bilemezse, bilgisayarın ürettiği sayı ekrana yazılır ve Üzgünüm, kaybettiniz, Üretilen sayı :20 gibi bir mesaj verilir.

Programın tüm kodları aşağıdaki gibidir. 


using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
 
namespace İkiliOyun
{
    public partial class Form1 : Form
    {
        int sayi1, sayi2;
        int sayac1, sayac2;
        int oyuncuPuan1, oyuncuPuan2;
        public Form1()
        {
            InitializeComponent();
        }
 
        private void btnOyuncu2_Click(object sender, EventArgs e)
        {
            Random rastgele = new Random();
            sayi2 = rastgele.Next(100) + 1;
            listBox2.Items.Clear();
            listBox2.Items.Add("OYUN başladı.");
            listBox2.Items.Add("Sayı üretildi, tahmininiz?");
            sayac2 = 0;
            
            // listBox1.Items.Add(sayi1.ToString());
        }
 
        private void btnOyuncu1_Click(object sender, EventArgs e)
        {
            Random rastgele = new Random();
            sayi1 = rastgele.Next(100) + 1;
            listBox1.Items.Clear();
            listBox1.Items.Add("OYUN başladı.");
            listBox1.Items.Add("Sayı üretildi, tahmininiz?");
            sayac1 = 0;
           // listBox1.Items.Add(sayi1.ToString());
 
 
        }
 
        private void btnGiris1_Click(object sender, EventArgs e)
        {
            if (txtTahmin1.Text != ""  &&  sayi1!=0)
            {
                int tahmin = int.Parse(txtTahmin1.Text);
                if (tahmin == sayi1)
                {
                    listBox1.Items.Add("TEBRİKLER, KAZANDINIZ");
                    oyuncuPuan1 += 10;
                    puan1.Items.Add(oyuncuPuan1);
                }
                else if (tahmin < sayi1)
                {
                    listBox1.Items.Add("Daha büyük sayı giriniz");
                    sayac1++;
                    if (sayac1 == 6)
                    {
                        MessageBox.Show("Üzgünüm, kaybettiniz, Üretilen sayı:" + sayi1.ToString());
                        oyuncuPuan1 -= 5;
                        puan1.Items.Add(oyuncuPuan1);
                    }
                }
                else if (tahmin > sayi1)
                {
                    listBox1.Items.Add("Daha küçük sayı giriniz");
                    sayac1++;
                    if (sayac1 == 6)
                    {
                        MessageBox.Show("Üzgünüm, kaybettiniz, Üretilen sayı:" + sayi1.ToString());
                        oyuncuPuan1 -= 5;
                        puan1.Items.Add(oyuncuPuan1);
                    }
                }
 
            } //if tahmin1 boş mu
            
            
 
        }
 
        private void button1_Click(object sender, EventArgs e)
        {
            oyuncuPuan1 = 0;
            oyuncuPuan2 = 0;
            listBox1.Items.Clear();
            listBox2.Items.Clear();
            puan1.Items.Clear();
            puan2.Items.Clear();
 
        }
 
        private void Form1_Load(object sender, EventArgs e)
        {
            btnYeniBaslat.PerformClick();
        }
 
        private void btnGiris2_Click(object sender, EventArgs e)
        {
            if (txtTahmin2.Text != "" && sayi2 != 0)
            {
                int tahmin = int.Parse(txtTahmin2.Text);
                if (tahmin == sayi2)
                {
                    listBox2.Items.Add("TEBRİKLER, KAZANDINIZ");
                    oyuncuPuan2 += 10;
                    puan2.Items.Add(oyuncuPuan2);
                }
                else if (tahmin < sayi2)
                {
                    listBox2.Items.Add("Daha büyük sayı giriniz");
                    sayac2++;
                    if (sayac2 == 6)
                    {
                        MessageBox.Show("Üzgünüm, kaybettiniz, Üretilen sayı:" + sayi2.ToString());
                        oyuncuPuan2 -= 5;
                        puan2.Items.Add(oyuncuPuan2);
                    }
                }
                else if (tahmin > sayi2)
                {
                    listBox2.Items.Add("Daha küçük sayı giriniz");
                    sayac2++;
                    if (sayac2 == 6)
                    {
                        MessageBox.Show("Üzgünüm, kaybettiniz, Üretilen sayı:" + sayi2.ToString());
                        oyuncuPuan2 -= 5;
                        puan2.Items.Add(oyuncuPuan2);
                    }
                }
 
            } //if tahmin2 boş mu
        }
 
        private void btnOyunuBitir_Click(object sender, EventArgs e)
        {
            int toplamPuan1 = 0, toplamPuan2=0;
           
                toplamPuan1 = (int)puan1.Items[puan1.Items.Count-1];
                MessageBox.Show("1. Oyuncu Puanları toplamı:" + toplamPuan1.ToString());
 
                toplamPuan2 = (int)puan2.Items[puan2.Items.Count - 1];
                MessageBox.Show("2. Oyuncu Puanları toplamı:" + toplamPuan2.ToString());
 
                if (toplamPuan1 > toplamPuan2)
                    MessageBox.Show("1. Oyuncu kazandı");
                else if(toplamPuan1 < toplamPuan2)
                    MessageBox.Show("2. Oyuncu kazandı");
                else
                    MessageBox.Show("Berabere...");
        }
    }
}
 



Mutlu kodlamalar,
22 Şubat 2022
Oğuzhan TAŞ

Bookmark and Share